home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Franz PD
/
Franz PD Disk #324 (1994-04)(Rhein-Sieg-Soft).zip
/
Franz PD Disk #324 (1994-04)(Rhein-Sieg-Soft).adf
/
VideoText3.5
/
source
/
global.p
< prev
next >
Wrap
Text File
|
1994-04-01
|
3KB
|
84 lines
UNIT global; {$project vt}
{ globale Variablen und Typdeklarationen zum Programm VideoText }
INTERFACE;
CONST anzsubpage = 15;
qlen = 15; { max. Anzahl wartender Seitenaufträge }
maxactive = 4; { max. Anzahl gleichzeitig suchbarer Seiten im SAA 5246 }
TYPE p_onepage = ^onepage;
onepage = RECORD
next,prev: p_onepage;
pg,sp: Integer;
chars: ARRAY [0..959] OF Byte;
cbits: Word;
END;
str80 = String[80];
bigstring = String[256];
zeiteintrag = RECORD tage,min,tics: Long; END;
VAR root,thispage: p_onepage;
queue: ARRAY [1..qlen] OF RECORD
pg,sp: Integer;
END;
queued: Integer;
activejobs: ARRAY [0..maxactive-1] OF RECORD
pg,sp: Integer;
sp_count,sp_max,akt_sp: Integer;
sp_check: ARRAY [0..anzsubpage] OF Boolean;
lastaction: zeiteintrag; { so 'ne Art DateStamp }
wartezeit: Integer;
holen,erledigt: Boolean;
ist_UT: Byte; { Bits für aging-Verfahren }
END;
thisjob: Integer; { zeigt auf einen wartenden (>0) oder aktiven Job (<0) }
aktspeicher: Integer; { der Speicher, in dem die VT-Uhr läuft }
maxwait, burst,shuffle, busdelay: Integer;
outputname: str80;
AsciiRawIff: Integer;
overwrite,protokoll: Boolean;
stop: Boolean;
lastkey: Char;
PROCEDURE add_time(delta: zeiteintrag; VAR zeit: zeiteintrag);
PROCEDURE sub_time(delta: zeiteintrag; VAR zeit: zeiteintrag);
FUNCTION diff_time(alt, neu: zeiteintrag): Long;
{ ---------------------------------------------------------------------- }
IMPLEMENTATION;
{ Rechnen mit Zeiteinträgen }
PROCEDURE add_time{(delta: zeiteintrag; VAR zeit: zeiteintrag)};
BEGIN
IF zeit.tics + delta.tics>=3000 THEN Inc(zeit.min);
zeit.tics := (zeit.tics + delta.tics) MOD 3000;
IF zeit.min + delta.min>=1440 THEN Inc(zeit.tage);
zeit.min := (zeit.min + delta.min) MOD 1440;
zeit.tage := zeit.tage + delta.tage;
END;
PROCEDURE sub_time{(delta: zeiteintrag; VAR zeit: zeiteintrag)};
BEGIN
IF zeit.tics - delta.tics<0 THEN Dec(zeit.min);
zeit.tics := (zeit.tics - delta.tics + 3000) MOD 3000;
IF zeit.min - delta.min<0 THEN Dec(zeit.tage);
zeit.min := (zeit.min - delta.min + 1440) MOD 1440;
zeit.tage := zeit.tage - delta.tage;
END;
FUNCTION diff_time{(alt, neu: zeiteintrag): Long};
{ liefert die Differenz zwischen zwei Zeitpunkten in Ticks (1/50-Sekunden) }
BEGIN
diff_time := neu.tics - alt.tics + 3000 * ( (neu.min - alt.min)
+ 1440 * (neu.tage - alt.tage) );
END;
BEGIN { Initialisierungen }
thispage := Nil; root := Nil;
aktspeicher := 0; thisjob := aktspeicher;
overwrite := True; AsciiRawIff := 1; protokoll := False;
END.